﻿//#include<stdio.h>
//int main()
//{
//	char *s = "hello";
//	s = 'H';//修改的是s的指向
//	*s = "j";//修改的是字符串❌
//	printf("%c\n", s);
//	return 0;
//}


#include <stdio.h>
int main()
{
	printf("hello world!\n");
	return 0;
}
#include <stdio.h>
int main(int argc, char* argv[], char* env[])
{
	int i = 0;
	for (; env[i]; i++) {
		printf("%s\n", env[i]);
	}
	return 0;
}

#include <stdio.h>
int main(int argc, char* argv[])
{
	extern char** environ;
	int i = 0;
	for (; environ[i]; i++) {
		printf("%s\n", environ[i]);
	}
	return 0;
}


#include <stdio.h>
#include <stdlib.h>
int main()
{
	printf("%s\n", getenv("PATH"));
	return 0;
}

#include <stdio.h>
#include <stdlib.h>
int main()
{
	char* env = getenv("MYENV");
	if (env) {
		printf("%s\n", env);
	}
	return 0;
}



//#include <stdio.h>
//#include <unistd.h>
//#include <stdlib.h>
//int g_val = 0;
//int main()
//{
//	pid_t id = fork();
//	if (id < 0) {
//		perror("fork");
//		return 0;
//	}
//	else if (id == 0) { //child,子进程肯定先跑完，也就是子进程先修改，完成之后，父进程再读取
//		g_val = 100;
//		printf("child[%d]: %d : %p\n", getpid(), g_val, &g_val);
//	}
//	else { //parent
//		sleep(3);
//		printf("parent[%d]: %d : %p\n", getpid(), g_val, &g_val);
//	}
//	sleep(1);
//	return 0;
//}


//////
//
//过期进程&活跃进程